home *** CD-ROM | disk | FTP | other *** search
/ Aminet 51 / Aminet 51 (2002)(GTI - Schatztruhe)[!][Oct 2002].iso / Aminet / dev / c / minigl.lha / MiniGL / demos / varray_new.c < prev    next >
Encoding:
C/C++ Source or Header  |  2002-05-01  |  2.3 KB  |  143 lines

  1. #include <mgl/gl.h>
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. #ifdef __VBCC__
  7.     #pragma amiga-align
  8. #endif
  9.  
  10. #include <proto/dos.h>
  11.  
  12. #ifdef __VBCC__
  13.     #pragma default-align
  14. #endif
  15.  
  16. unsigned short index[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17};
  17.  
  18. // Tri_FFF
  19. float Tri_FFF[] =
  20. {
  21.      10.0, 210.0, 0.0,
  22.     210.0, 210.0, 0.0,
  23.     110.0,  10.0, 0.0,
  24.  
  25.      10.0, 230.0, 0.0,
  26.     210.0, 230.0, 0.0,
  27.     110.0, 430.0, 0.0,
  28.  
  29.     220.0, 210.0, 0.0,
  30.     420.0, 210.0, 0.0,
  31.     320.0,  10.0, 0.0,
  32.  
  33.     220.0, 230.0, 0.0,
  34.     420.0, 230.0, 0.0,
  35.     320.0, 430.0, 0.0,
  36.  
  37.     430.0, 210.0, 0.0,
  38.     630.0, 210.0, 0.0,
  39.     530.0,  10.0, 0.0,
  40.  
  41.     430.0, 230.0, 0.0,
  42.     630.0, 230.0, 0.0,
  43.     530.0, 430.0, 0.0
  44.  
  45. };
  46.  
  47.  
  48. // Tri_F_RGB
  49. float Tri_F_RGB[] =
  50. {
  51.     1.0, 0.0, 0.0,
  52.     0.0, 1.0, 0.0,
  53.     0.0, 0.0, 1.0,
  54.  
  55.     1.0, 1.0, 0.0,
  56.     0.0, 1.0, 1.0,
  57.     1.0, 0.0, 1.0,
  58.  
  59.     1.0, 0.0, 0.0,
  60.     0.0, 1.0, 0.0,
  61.     0.0, 0.0, 1.0,
  62.  
  63.     1.0, 1.0, 0.0,
  64.     0.0, 1.0, 1.0,
  65.     1.0, 0.0, 1.0,
  66.  
  67.     1.0, 0.0, 0.0,
  68.     0.0, 1.0, 0.0,
  69.     0.0, 0.0, 1.0,
  70.  
  71.     1.0, 1.0, 0.0,
  72.     0.0, 1.0, 1.0,
  73.     1.0, 0.0, 1.0
  74. };
  75.  
  76.  
  77. int main()
  78. {
  79.     int i;
  80.     GLenum err;
  81.  
  82.     MGLInit();
  83.  
  84.     mglChooseNumberOfBuffers(2);
  85.     mglChoosePixelDepth(16);
  86.     mglChooseWindowMode(GL_TRUE);
  87.  
  88.     if (mglCreateContext(0, 0, 640, 480))
  89.     {
  90.         glViewport(0, 0, 640, 480);
  91.  
  92.         glDisable(GL_CULL_FACE);
  93.  
  94. //Surgeon begin -->
  95.     //test the pipeline for transform, project and clip:
  96.         glMatrixMode(GL_PROJECTION);
  97.         glLoadIdentity ();
  98.         glOrtho (0, 640, 480, 0, -99999, 99999);
  99.         glMatrixMode(GL_MODELVIEW);
  100.         glLoadIdentity ();
  101.         glRotatef(30, 0, 0, 1);
  102.         glRotatef(30, 0, 1, 0);
  103.         glRotatef(30, 1, 0, 0);
  104.  
  105.         mglLockDisplay();
  106. // <-- Surgeon end
  107.  
  108.  
  109.         glClearColor(0.0, 0.0, 0.0, 1.0);
  110.         glClear(GL_COLOR_BUFFER_BIT);
  111.  
  112.  
  113.         glEnableClientState(GL_COLOR_ARRAY);
  114.         glEnableClientState(GL_VERTEX_ARRAY);
  115.  
  116.         //turn off the vertexarray pipeline:
  117.         //glDisable(MGL_ARRAY_TRANSFORMATIONS);
  118.  
  119.         glColorPointer(3, GL_FLOAT, 3*sizeof(float), Tri_F_RGB);
  120.         glVertexPointer(3, GL_FLOAT, 3*sizeof(float), (void *)Tri_FFF);
  121.  
  122.         for(i=0; i<18; i+=3)
  123.         glDrawArrays(GL_POLYGON, i, 3);
  124.  
  125. //        glDrawArrays(GL_TRIANGLES, 0, 18);
  126.  
  127.         err = glGetError();
  128.  
  129.         glDisableClientState(GL_COLOR_ARRAY);
  130.         glDisableClientState(GL_VERTEX_ARRAY);
  131.  
  132.         mglSwitchDisplay();
  133.  
  134.         Delay(50);
  135.  
  136.         mglDeleteContext();
  137.     }
  138.  
  139.     MGLTerm();
  140.  
  141.     return 0;
  142. }
  143.